背景:在校验模板导入场景下,有时避免不了需要判断输入字符串是否满足要求日期格式,并返回所需要的日期格式。 以下是利用SimpleDateFormat进行校验的代码
/**通过 SimpleDateFormat解析字符串时是否异常判断字符串是否符要求的日期格式
* @param dString
* @return
*/
public String newDateFormat(){
try {
String dString = "20210712102959";
//输入字符串的格式,把字符串解析成日期格式
SimpleDateFormat sFormat1 = new SimpleDateFormat("yyyyMMddHHmmss");
//设置Lenient属性为false,表示严格解析日期;否则会出现20210712102960解析成 20210712103000的情况
sFormat1.setLenient(false);
Date date = sFormat1.parse(dString);
System.out.println(date);
//需要转换的时间格式
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String newDateFormat = sFormat.format(date);
System.out.println(newDateFormat);
return newDateFormat;
} catch (Exception e) {
System.out.println("输入时间格式错误");
return null;
}
}
日期格式详解(部分): : 时间分隔符,在某些区域设置中,可以使用其他字符表示时间分隔符。时间分隔符在格式化时间值时分隔小时、分钟和秒。 / 日期分隔符,在某些区域设置中,可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值时分隔日、月和年。 d 将日显示为不带前导零的数字(如 1)。 dd 将日显示为带前导零的数字(如 01)。 M 将月份显示为不带前导零的数字(如一月表示为 1)。 MM 将月份显示为带前导零的数字。 h 使用 12 小时制将小时显示为不带前导零的数字(例如 1:15:15 PM)。 hh 使用 12 小时制将小时显示为带前导零的数字(例如 01:15:15 PM)。 H 使用 24 小时制将小时显示为不带前导零的数字(例如 1:15:15)。 HH 使用 24 小时制将小时显示为带前导零的数字(例如 01:15:15)。 m 将分钟显示为不带前导零的数字(例如 12:1:15)。 mm 将秒显示为带前导零的数字(例如 12:15:05)。 y 将年份 (0-9) 显示为不带前导零的数字。 yy 以带前导零的两位数字格式显示年份。 yyy 或 yyyy 以四位数字格式显示年份。
|